using System;
using C4Net.Data.Definitions;
using C4Net.Data.Interfaces;
using C4Net.JC3IEDM.Enums;
using C4Net.JC3IEDM.Expressions;
using C4Net.JC3IEDM.Interfaces;

namespace C4Net.JC3IEDM.Entities
{
    /// <summary>
    /// Class for the entity PERSON-IDENTIFICATION-DOCUMENT that represents the table PERS_IDENTIFIC_DOC.
	///
	/// A document used to identify a specific PERSON.
    /// </summary>
    [Serializable]
    [DefinitionName("PersonIdentificationDocument", "C4Net.JC3IEDM.Definitions.PersonIdentificationDocument.definition.xml")]
    public class PersonIdentificationDocument : IEntity, IPersonIdentificationDocument
    {
        #region - Fields - 

        /// <summary>
        /// Expression builder for this entity.
        /// </summary>
        public static readonly PersonIdentificationDocumentExpression _ = new PersonIdentificationDocumentExpression();

        #endregion

        #region - Properties -
		
        /// <summary>
        /// Gets or sets the value of the column pers_id
		///
		/// The unique value, or set of characters, assigned to represent a specific OBJECT-ITEM and to distinguish it from all other OBJECT-ITEMs.
        /// </summary>
        /// <value>
        /// Value of the column pers_id
        /// </value>
		public decimal PersonId { get; set; }
		
        /// <summary>
        /// Gets or sets the value of the column pers_identific_doc_ix
		///
		/// The unique value, or set of characters, assigned to represent a specific PERSON-IDENTIFICATION-DOCUMENT for a specific PERSON and to distinguish it from all other PERSON-IDENTIFICATION-DOCUMENTs for that PERSON.
        /// </summary>
        /// <value>
        /// Value of the column pers_identific_doc_ix
        /// </value>
		public decimal Index { get; set; }
		
        /// <summary>
        /// Gets or sets the value of the column code
		///
		/// The specific value that represents the type of document used to identify a specific PERSON.
        /// </summary>
        /// <value>
        /// Value of the column code
        /// </value>
		public PersonIdentificationDocumentEnum PersonIdentificationDocumentCode { get; set; }
		
        /// <summary>
        /// Gets or sets the value of the column no_txt
		///
		/// The character string assigned to represent the identifying number of the specific document used to identify a PERSON.
        /// </summary>
        /// <value>
        /// Value of the column no_txt
        /// </value>
		public string NumberText { get; set; }
		
        /// <summary>
        /// Gets or sets the value of the column creator_id
		///
		/// A value assigned to the row to identify the organisation which created that row. This is referenced by an application level business rule to an OBJ_ITEM entry with a cat_code = OR and to a corresponding ORG subtype entry.
        /// </summary>
        /// <value>
        /// Value of the column creator_id
        /// </value>
		public decimal CreatorId { get; set; }
		
        /// <summary>
        /// Gets or sets the value of the column update_seqnr
		///
		/// An absolute sequence number, assigned to represent the validity (in terms of seniority) of a certain data item.
        /// </summary>
        /// <value>
        /// Value of the column update_seqnr
        /// </value>
		public long UpdateSeqnr { get; set; }
		
        #endregion
    }
}
